package com.example.teatea.dao;

import com.example.teatea.tools.MD5;
import com.example.teatea.tools.RandomData;

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

public class PreparedStatementDemo {
    public static void main(String[] args) {
        Connection conn = null;
        ResultSet res = null;
        Properties info=new Properties();
        //使用工具类获取数据库连接，tyr()异常，自动关闭数据库连接
        try {
            info.load(new FileInputStream("src\\main\\resources\\com\\example\\teatea\\sql.properties"));
            String user=info.getProperty("user");
            String password=info.getProperty("password");
            String Driver=info.getProperty("Driver");
            String url=info.getProperty("url");
            //注册驱动
            Class.forName(Driver);
            //获取连接
            conn = DriverManager.getConnection(url, user, password);
            //使用占位符定义添加sql语句，字符串中的【?】为占位符，具体的值通过PreparedStatement对象设置
            String sql = "INSERT ignore INTO members (mName, mSex,mBirthday,mPhone,mTime) VALUES (?,?,?,?,?)";//此处使用预处理操作
            PreparedStatement pstmt=conn.prepareStatement(sql);//实例化PreparedStatement对象
            for (int i = 0; i < 3000; i++) {
                pstmt.setString(1, RandomData.getChineseName());//设置sql语句中第一个“?”的值
                pstmt.setString(2,RandomData.name_sex);//设置sql语句中第二个“?”的值
                pstmt.setString(3,RandomData.getRandomBirthday());//设置sql语句中第三个“?”的值
                pstmt.setString(4,RandomData.getRandomPhone());//设置sql语句中第四个“?”的值
                pstmt.setString(5,RandomData.getRandomBirthday());//设置sql语句中第五个“?”的值
                pstmt.addBatch();// 加入批处理等待执行
            }
            int tmp[]= pstmt.executeBatch();// 批量执行
            System.out.println(tmp.length+"条数据添加成功！");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
